package cn.tedu.java.thread;

import java.util.concurrent.ArrayBlockingQueue;

/**
 * 阻塞式队列中put方法和take方法的应用
 */
public class ArrayBlockingQueueTests {
    public static void main(String[] args) throws InterruptedException {
        ArrayBlockingQueue<Integer> queue=new ArrayBlockingQueue<>(3);
        queue.put(100);
        queue.put(200);
        queue.put(300);
        System.out.println(queue);
        //queue.put(400);//put方法为阻塞式方法，队列满了，再放的时候会被阻塞。
        //System.out.println(queue);

        Integer e1 = queue.take();
        Integer e2 = queue.take();
        Integer e3 = queue.take();
        System.out.println(queue);
        Integer e4 = queue.take();//take方法为阻塞式方法，没有内容可取了，调用此方法的线程会阻塞
    }
}
